<?php 
//命名空间
namespace Home\Controller;
//导入类
use Think\Controller;
use Think\Verify;

//定义User控制器
class UserController extends CommonController
{
    //显示登录界面
    public function index()
    {
        // echo '登录界面';
        $this->display();
    }

    // 显示注册界面
    public function register()
    {
        // echo '注册界面';
        $this->display('User/register');
    }


    // 生成验证码
    public function Verify()
    {
        $config = array(
            'fontsize' => 25,
            'length' => 4,
            'imageW' => 180,
            'imageH' => 60
        );

        $Verify = new \Think\Verify($config);
        $Verify->entry(1);
    }

    // 异步验证手机号是否存在



    // 异步验证昵称是否存在
    public function checkNickname()
    {
        // 判断是否是异步传递过来的数据
        if (!IS_AJAX) {
            $this->error('请返回');
        }

        // 拿到name的值
        if(!empty($_POST['nickname'])) {
            $nickname = $_POST['nickname'];

            $data = array('name'=>$nickname);
            // 实例化用户表，是否有用户的信息
            if(M('user')->where($data)->getField('id')){
                echo 'false';
            }else{
                echo 'true';
            }
        }
    }

    // 异步验证验证码
    public function checkCode()
    {
        if(!IS_AJAX){
            $this->error('请返回');
        }
        // 判断接收过来的验证码是否为空
        if(!empty($_POST['code'])){
            $code = $_POST['code'];

            // 判断验证码是否正确

            if(check_verify($code,1)){

                echo 'true';
            }else{

                echo 'true';
            }
        }
    }

    // 处理用户注册提交过来的数据

    public function doRegister()
    {
        // 判断该用户是否是post传值过来的
        if(!IS_POST) {
            $this->error('请返回');
        }

        // 再次判断两次输入的密码是否相同

        if($_POST['password'] != $_POST['conf_password']){
            $this->error('两次输入的密码不相同');
        }
        // 将post传递过来的值放到数组中 用于sql操作
        $data = array(
            // 用I方法获取变量
            'tel' => I('post.mobile'),
            'pwd' => md5(I('post.password')),
            // 从全局变量server中拿到时间戳
            'regtime' => I('server.REQUEST_TIME'),
            'name' => I('post.nickname')
        );

        $id = M('user')->data($data)->add();

        if($id){
            $this->success('成功',U('Home/Index/index'));
            // 数据提交成功之后，将用户的id存入到session中
            session('uid',$id);
        }else{
            $this->error('注册失败，返回');
        }

    }

    // 处理用户登录提交过来的数据
    public function doLogin()
    {
/*        dump($nickname);
        exit;*/
        if(!IS_POST){
            $this->error('请返回');
        }
        $pwd = md5(I('post.password'));
        $tel = I('post.mobile');

        $data = array('tel'=>$tel);
        // 到数据库查询该用户是否存在
        $res = M('user')->where($data)->find();

        // 如果查询不到 或者 用户的密码错误
        if(!$res || $res['pwd'] != $pwd){
            $this->error('该用户不存在');
        }

        // 判断用户是否被锁定
        if(!$res['status']) {
            $this->error('用户被锁定');
        }

        // 判断用户是否填写自动登录(记住密码)

        if(!empty($_POST['savestate'])){
            // 将用户的信息写入到cookie中

            // 得到用户的IP 和用户的账号
            $ip = get_client_ip();
            $tel = $res['tel'];

            $value = $phone.'|'.$ip;
            cookie('auto',encryption($value),3600*24*7);

        }

        // 登录成功 将信息写入到session中
        // var_dump($res);
        session('uid',$res['id']); 
        $_SESSION['User']['uid'] =  $res['id'];
        $_SESSION['User']['nickname'] =  $res['name'];
        // var_dump($_SESSION);
        $this->success('登入成功',U('Home/Index/index'));

    }

    public function outLogin()
    {
        // 将session删除
        unset($_SESSION['User']);
        // var_dump($_SESSION);die;
        // 将cookie删除
        cookie('auto',null);

        redirect(U('Home/Index/index'),3,'页面跳转中....');
    }





}




